# 循环结构


# 01：求10以内的偶数的和。
# s=0
# for i in range(0,10,2):
#     print(i)
#     s+=i
# print(f'10以内的偶数的和:{s}')

# *******************************************************************
# 02：求100以内的所有素数
# （素数：一个大于1的自然数，除了1和它本身外，不能被其他自然数整除）

# i = 1
# while i < 100:
#     j = i - 1
#     while j > 1:
#         if i % j != 0:
#             print(i)
#         j -= 1
#     i+=1


# 03：随机产生一个1-100之间的整数，看能几次猜中。要求：猜的次数不能超过7次，
# 每次猜完之后都要提示“大了”或者“小了”。

# import random
#
# random_random = random.randint(1, 100)
# print(random_random)
# num = 1
# while num <= 7:
#     num1 = int(input('请输入数：'))
#     if random_random == num1:
#         print(f'第{num}次猜中了')
#         break
#     elif random_random > num1:
#         print('小了')
#         num += 1
#     elif random_random < num1:
#         print('大了')
#         num += 1


# 04：写一个方法，此方法实现输出100-999之间的水仙花数。

# i2 = 100
# while i2 < 1000:
#     baiweinum = i2 // 100
#
#     num = i2 % 100
#     shiweinum = num // 10
#
#     geweinum = i2 % 10
#     if baiweinum ** 3 + shiweinum ** 3 + geweinum ** 3 == i2:
#         print(i2)
#     i2+=1


# 05：输出小写的a-z以及大写的在Z—A
# a = ord('a')
# z = ord('z')
# A = ord('A')
# Z = ord('Z')
#
# for i in range(a,z+1):
#      print(chr(i),end='')
# print()
# for i in range(A,Z+1):
#      print(chr(i),end='')


# 06：求出1-3+5-7+9-…..101的和

# count = 1
# s = 0
# i = 1
# while i <= 101:
#     if count == 1:
#         s += i
#         count = 0
#     elif count == 0:
#         s -= i
#         count = 1
#     i+=2
# print(s)

# 07：求出1-1/2+1/3-1/4…..1/100的和

# s=0
# i=1
# while i<=100:
#     if i%2!=0:
#         s+=1/i
#     elif i%2==0:
#         s-=1/i
#     i+=1
# print(s)

# 08：输出20-80之间能被3整除的整数，每5个一行
# count=0
# for i in range(20,80):
#     if i%3==0:
#         print(i,end=",")
#         count+=1
#         if count%5==0:
#             print()

# 09：打印出1000-2000年中所有的闰年，并以每行四个数的形式输出

# i1 = 1000
# while i1 < 2000:
#     if i1 % 4 == 0:
#         if i1 % 100 == 0 and i1 % 400 == 0:
#             print(i1)
#         elif i1 % 100 != 0:
#             print(i1)
#     i1+=1

# 10：定义两个整数a、b，a、b的取值范围在0-9之间，给出所有符合a+b=12的组合。

# for a in range(0, 9):
#     for b in range(0, 9):
#         if a + b == 12:
#             print(a, b)

# 11：A、B、C、D分别为0——9之间的整数，求出满足AB+CD=DA条件的数。
#     例如：90+09=99

# for A in range(0, 10):
#     for B in range(0, 10):
#         for C in range(0, 10):
#             for D in range(0, 10):
#                 if A * 10 + B + C * 10 + D == D * 10 + A:
#                     print(f'{A * 10 + B}+{C * 10 + D}={D * 10 + A}')

# 12：随机生成一个五位以内的数，然后输出该数共有多少位，每位分别是什么

import random

randint = random.randint(10000, 100000)
print(randint)
wanwei = randint // 10000

qianwei = randint%10//1000
baiwei = randint%100//100
shiwei = randint%1000//10
gewei = randint%10000
print(wanwei, qianwei, baiwei, shiwei, gewei)

# 13：输出九九乘法表

# for i in range(1,10):
#     for j in range(1,i+1):
#         print('{}*{}={}\t'.format(j,i,i*j),end='')
#     print()


# 14：使用Java实现输出如下图形。

# 15：实现双色球的彩票功能。
# 规则：从36个红球中随机选择不重复的6个数，从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

# 16：输出1-100之间的不能被5整除的数，每5个一行。

# 17：输出斐波那契数列数列的前20项

# 18：输出一个整数的二进制数、八进制数、十六进制数。

# 19：随机产生一个字母，如果是大写字母则输出“yes”，否则输出“no”

# 20：随机产生一个字符，
# 判断：如果为大写字母则输出“大写字母”；如果为小写字母则输出“小写字母”；否则怎输出“其他字符”；

# 21：求100到1000之间的所有能被5和6整除的整数，每行显示5个

# 22：求和：1/3+3/5+5/7+7/9+………..+97/99

# 23：输出100以内的所有素数，每行显示5个；并求和。

# 24：山上有一口缸可以装50升水，现在有15升水。老和尚叫小和尚下山挑水，每次可以挑5升。问：小和尚要挑几次水才可以把水缸挑满？通过编程解决这个问题。
# 提示：
# (1) 用整型变量water表示水缸里的水“int water = 15;”。
# (2) 用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
# (3) 分析循环条件（水少于50升），循环操作（水增加5升，挑水次数增加1）。
# (4) 套用while循环（或do-while循环）写出代码。

# 25：李白无事街上走，提壶去买酒。遇店加一倍，见花喝一斗，五遇花和店，喝光壶中酒，试问李白壶中原有多少斗酒？（使用for循环结构编程实现）
# 提示：采用逆向思维分析问题。

# 26：开发一个标题为“FlipFlop”的游戏应用程序。它从1计数到100，
# 遇到3的倍数就替换为单词“Flip”，5的倍数就替换为单词“Flop”，
# 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。

#
# 27：生成13位条形码
# Ean-13码规则：第十三位数字是前十二位数字经过计算得到的校验码。
# 例如：690123456789
# 计算其校验码的过程为：
# @前十二位的奇数位和6+0+2+4+6+8=26
# @前十二位的偶数位和9+1+3+5+7+9=34
# @将奇数和与偶数和的三倍相加26+34*3=128
# @取结果的个位数：128的个位数为8
# @用10减去这个个位数10-8=2
# 所以校验码为2
# （注：如果取结果的个位数为0，那么校验码不是为10（10-0=10），而是0）
# 实现方法ean13（）计算验证码，输入12位条码，返回带验证码的条码。
# 例：输入：692223361219输出：6922233612192

# 28：求两个整数的最大公约数和最小公倍数


# 29：将100元兑换为1元、5元、10元的零钱，请问有多少种兑换方法？

# 30：用100元人民币兑换10元，5元，1元的纸币（每种都要有）共50张，计算有多少种兑换方案

# 31：设计Java程序，假设有50瓶饮料，喝完3个空瓶可以换一瓶饮料，依次类推，请问总共喝了多少瓶饮料？
